/**
 *map(callback，[, thisArg])方法返回一个由原数组中的每一个元素调用一个指定的方法后的返回值组成新的数组
 * callback参数一:原数组中的每一个元素经过该方法返回一个新的元素
 * callback参数二:数组当前被传递的元素索引
 * callback参数三:调用map方法的数组
 */

/**
 * replace()用于在字符串中用一些字符替换另一些字符，或替换一个与正则表达式匹配的子串。该方法执行的是查找并替换的操作
 * replace()参数一：被替换元素;参数二:替换元素
 * g 全局替换
 * @param sigle当前原数组
 * @constructor
 */
function Map(sigle) {
    var result = sigle.replace(/o/g, 'e');
    if (sigle === "kangaroo") {
        result += "se"
    }
    return result;
}
var arr = ['foot', 'goose', 'moose', 'kangaroo'];
console.log(arr.map(Map));

//在实际使用中，我们可以利用map()方法来获取对象数组中的特定属性值
var users = [
    {name: "张含韵", "email": "zhang@email.com", age: 20},
    {name: "江一燕", "email": "jiang@email.com", age: 21},
    {name: "李小璐", "email": "li@email.com", age: 23}
];
function getUser(users) {
    return users.name + "," + users.age;
}
var username = users.map(getUser);
console.log(username)